home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Wonky Flux Batch 2019 02
/
Wonky_Flux_Batch_2019-02.zip
/
Wonky Flux Batch 2019-02
/
002 - AE ProDOS Time Utilities - Timemaster II H.O Version 3.5 Apple Pascal.dsk
/
ASSMNEW.TEXT.txt
next >
Wrap
Text File
|
2019-02-16
|
4KB
|
112 lines
;---------------------------------------
;WRITTEN BY STEVEN MALECHEK FOR
;APPLIED ENGINEERING ON JAN 25, 1985
;Copyright (c) 1985, 1986 Applied Engineering
;---------------------------------------
;MACRO POPS 16 BIT ARGUMENT
;
.MACRO POP
PLA
STA %1
PLA
STA %1+1
.ENDM
;---------------------------------------
;MACRO PUSH 16 BIT ARGUMENT
;
.MACRO PUSH
LDA %1+1
PHA
LDA %1
PHA
.ENDM
;---------------------------------------
;MACRO DUMPS 2 WORDS OF ZEROS
;
.MACRO DUMP
PLA
PLA
PLA
PLA
.ENDM
;---------------------------------------
;FUNCTION TO READ CLOCK
;
.FUNC READCLOCK,1
RETURN .EQU 0 ;STORE RETURN ADDRESS AT $00
HOLD .EQU 10 ;DATA TO HOLD CLOCK
RELEASE .EQU 2F ;DATA TO RELEASE CLOCK
CONTRG .EQU 04 ;CONTROL REGISTER DATA INITALATION
PORTA .EQU 0C080 ;PORT A BASE ADDRESS
CRTA .EQU 0C081 ;CONTROL REGISTER A BASE ADDRESS
PORTB .EQU 0C082 ;PORT B BASE ADDRESS
CRTB .EQU 0C083 ;CONTROL REGISTER A BASE ADDRESS
.PUBLIC SLOT ;GET SLOT FOR PASCAL PROGRAM
POP RETURN
DUMP ;GET RID OF TRASH
PLA ;GET LSB OF SELECT
AND #0F ;MASK OFF UPPER NIBBLE
TAY ;PUT IN Y FOR INDEXING
LDX SLOT
LDA #00
STA CRTA,X ;CLEAR CONTROL REG A
STA CRTB,X ;SAME
STA PORTA,X ;SET PORT A FOR INPUT
LDA #0FF
STA PORTB,X ;SET PORT B FOR OUTPUT
LDA #CONTRG ;SET UP FOR DATA EXCHANGE
STA CRTA,X
STA CRTB,X
JSR READCL ;READ DIGIT
CPY #00 ;CHECK FOR DAY DIGIT
BEQ FINISH ;IF SO EXIT (DAY IS ONLY ONE DIGIT)
CLC
STA TEMP ;SAVE A FOR MULTIPLY
ASL A ;MULTIPLY A BY TEN
ASL A ;TO GET IT IN TENS PLACE
ADC TEMP
ASL A
STA TEMP
INY ;GET ONES DIGIT
JSR READCL
CLC
ADC TEMP ;ADD TO TENS DIGIT
FINISH PHA ;PUT LSB ON STACK
PUSH RETURN ;RESTORE RETURN ADDRESS
RTS ;RETURN TO PASCAL
READCL LDA #HOLD ;HOLD CURRENT TIME FOR READING
STA PORTB,X ;START READING THE CLOCK
LDA TABLE,Y ;GET CODE FOR DIGIT
STA PORTB,X ;SEND CODE
NOP ;WAIT
NOP
LDA PORTA,X ;GET DATA
PHA
LDA #RELEASE ;RELEASE CLOCK FROM HOLD
STA PORTB,X
PLA
CPY #03 ;CHECK IF IT READED DATE 10 PLACE
BEQ MASK ;IF SO CLEAR UP
CPY #07 ;CHECK IF IT READED HOURS 10 PLACE
BNE NOMASK ;IF NOT DON'T MASK
MASK AND #03 ;SAVE ONLY BITS 0 AND 1
NOMASK AND #0F ;REMOVE HIGH BITS
RTS
TABLE .BYTE 36 ;CODE FOR DAY OF WEEK
.WORD 393A ;MONTH
.WORD 3738 ;DATE
.WORD 3B3C ;YEAR
.WORD 3435 ;HOURS
.WORD 3233 ;MINUTES
.WORD 3031 ;SECONDS
TEMP .BYTE 00 ;TEMPORARY STORAGE FOR MULT
.END ;END OF ASSEMBLY